package com.go.where.family.component;

import java.util.List;

import com.go.where.family.pojo.AccountRelationInfo;
import com.go.where.family.scoket.Head;
import com.go.where.family.vo.CustomerVo;

/**
 * 前台用户信息组件
 * 
 * @author java
 * 
 */
public interface CustomerComponent {

	/**
	 * 获取验证码
	 * 
	 * @param body
	 * @param head
	 * @return
	 */
	public CustomerVo getAuthCode(String body, Head head);

	/**
	 * 校验验证码
	 * 
	 * @param body
	 * @param head
	 * @return
	 */
	public CustomerVo checkAuthCode(String body, Head head);

	/**
	 * 用户完成注册
	 * 
	 * @param body
	 * @param head
	 * @return
	 */
	public CustomerVo register(String body, Head head);

	/**
	 * 忘记密码
	 * 
	 * @param body
	 * @param head
	 * @return
	 */
	public CustomerVo forgetPassword(String body, Head head);

	/**
	 * 修改用户信息
	 * 
	 * @param body
	 * @param head
	 * @return
	 */
	public boolean updateAccount(String body, Head head);

	/**
	 * 获取用户信息
	 * 
	 * @param body
	 * @param head
	 * @return
	 */
	public CustomerVo getAccount(String body, Head head);

	/**
	 * 第三方账号登录
	 * 
	 * @param body
	 * @param head
	 * @return
	 */
	public CustomerVo loginOf3Part(String body, Head head);

	/**
	 * 用户登录
	 * 
	 * @param body
	 * @param head
	 * @return
	 */
	public CustomerVo login(String body, Head head);

	/**
	 * 快速登录
	 * 
	 * @param body
	 * @param head
	 * @return
	 */
	public CustomerVo fastLogin(String body, Head head);

	/**
	 * 修改密码
	 * 
	 * @param body
	 * @param head
	 * @return
	 */
	public CustomerVo updatePwd(String body, Head head);

	/**
	 * 校验用户合法性
	 * 
	 * @param body
	 * @param head
	 * @return
	 */
	public boolean checkUser(String body, Head head);

	/**
	 * 上传clientid
	 * 
	 * @param body
	 * @param head
	 * @return
	 */
	public CustomerVo uploadCilentId(String body, Head head);

	/**
	 * 获取个人用户信息
	 * 
	 * @param body
	 * @param head
	 * @return
	 */
	public CustomerVo getPersonalInfo(String body, Head head);

	/**
	 * 用户手机号码,查询对应用户信息
	 * 
	 * @param body
	 * @param head
	 * @return
	 */
	public List<CustomerVo> matchMobiles(String body, Head head);

	/**
	 * 搜索所有用户
	 * 
	 * @param body
	 * @param head
	 * @return
	 */
	public List<CustomerVo> search(String body, Head head);

	/**
	 * 绑定或者解除绑定
	 * 
	 * @param body
	 * @param head
	 * @return
	 */
	public boolean bindOrCancel(String body, Head head);
	
	/**
	 * 查询绑定列表
	 * @param body
	 * @param head
	 * @return
	 */
	public List<AccountRelationInfo> queryBindList(String body, Head head);
	

}
